
#通常，如果没有合适的继承类，就使用object类，这是所有类最终都会继承的类
class STudent(object):
    pass


#自由地给一个实例变量绑定属性
stu=STudent()
stu.name="abc"
stu.age=100
print(stu.name,stu.age)

'''
如果要让内部属性不被外部访问，可以把属性的名称前加上两个下划线__，
在Python中，实例的变量名如果以__开头，就变成了一个私有变量（private），
只有内部可以访问，外部不能访问
'''
class Student(object):
    def __init__(self,name,score):
        self.__name=name
        self.__score=score

    def letyousee(self):
        print('%s:%s'%(self.__name,self.__score))


stt=Student('lll',100)
stt.letyousee()

'''
双下划线开头的实例变量是不是一定不能从外部访问呢？
其实也不是。不能直接访问__name是因为Python解释器对外把__name变量改
成了_Student__name，所以，仍然可以通过_Student__name来访问__name变量：
但是强烈建议你不要这么干，因为不同版本的Python解释器可能会把__name改成不同的变量名。
'''

print(stt._Student__name)

